<?php

namespace app\api\model\admin\setting;


use app\api\common\model\BaseModel;
use app\api\common\traits\ModelTrait;

use think\db\Query;
use think\Model;

/**
 * 管理员权限规则
 * Class Role
 * @package app\model\admin
 */
class Role extends BaseModel
{
    use ModelTrait;

    protected $connection = 'mysql';
    /**
     * 数据表主键
     * @var string
     */
    protected $pk = 'id';

    /**
     * 模型名称
     * @var string
     */
    protected $name = 'admin_role';

    //软删除，查询时会自动加上 xxx IS NULL
    use \think\model\concern\SoftDelete;
    protected string $deleteTime = 'delete_time';

    /**
     * 管理员账号和姓名搜索器
     *
     * @param \think\db\Query $query
     * @param string          $value
     */
    public function searchRoleNameLikeAttr(Query $query, string $value)
    {
        if ($value) {
            $query->whereLike('role_name', '%' . $value . '%');
        }
    }
    
    /*/withSearch不能查询$value为null的，必须配置查询器
    public function searchDeleteTimeAttr($query, $value)
    {
        $query->where('delete_time', $value);
    }
    */

    /**
     * 规则修改器
     *
     * @param Model $value
     *
     * @return string|\think\Model
     */
    public static function setRulesAttr(mixed $value): string|Model
    {
        return is_array($value) ? implode(',', $value) : $value;
    }

}
